home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / validation / DecimalLeafValidator.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  1.4 KB  |  51 lines

  1. package com.extensibility.validation;
  2.  
  3. import com.extensibility.xml.SchemaIntf;
  4. import com.extensibility.xml.dt.DataType;
  5. import com.extensibility.xml.dt.DataTypeIntf;
  6. import java.math.BigDecimal;
  7.  
  8. class DecimalLeafValidator extends DataValidator {
  9.    String validate(SchemaIntf var1, DataType var2, String var3) {
  10.       if (var3.startsWith("+") && !var3.startsWith("+-")) {
  11.          var3 = var3.substring(1);
  12.       }
  13.  
  14.       BigDecimal var4;
  15.       try {
  16.          var4 = new BigDecimal(var3);
  17.       } catch (Exception var7) {
  18.          String var6 = "invalid decimal number";
  19.          return var6;
  20.       }
  21.  
  22.       if (var2.getTypeName() == DataTypeIntf.FIXED144) {
  23.          if (var4.scale() > 4) {
  24.             return "data must have at most 4 decimal digits";
  25.          }
  26.  
  27.          String var5 = var4.toString();
  28.          int var9 = var5.length();
  29.          if (var5.startsWith("-")) {
  30.             --var9;
  31.          }
  32.  
  33.          if (var5.indexOf(".") != -1) {
  34.             --var9;
  35.          }
  36.  
  37.          var9 -= var4.scale();
  38.          if (var9 > 14) {
  39.             return "data must have at most 14 whole digits";
  40.          }
  41.       }
  42.  
  43.       String var8 = ((DataValidator)this).applyDecimalFacets(var1, var2, var4);
  44.       if (var8 == null) {
  45.          var8 = ((DataValidator)this).applyLexicalFacets(var1, var2, var3);
  46.       }
  47.  
  48.       return var8;
  49.    }
  50. }
  51.